home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / progs / editor / frexxed / fpl / changefact.fpl < prev    next >
Text File  |  1996-03-17  |  3KB  |  129 lines

  1. int word;     //word class      'W'
  2. int space;    //white space     ' '
  3. int symbol;   //symbol char     '!'
  4. int tab;      //tab char        'T'
  5. int newl;     //newline         'N'
  6. int brop;     //opening bracket '('
  7.  char bropc;   //opposite char   
  8. int brcl;     //closing bracket ')'
  9.  char brclc;   //opposite char
  10. int upp;      //uppercase       'U'
  11.  char uppc;    //opposite
  12. int low;      //lowercase       'L'
  13.  char lowc;    //opposite
  14.  string strgstr;
  15. string factname;
  16. string list[261];
  17.  
  18. void MakeList()
  19. {int n;
  20.  for(n=-5;n<256;n++)
  21.  {
  22.   list[n+5]=itoa(n)+"   "+FACTString(n,factname);
  23.  };
  24. }
  25.  
  26. void GetAttributes(int chr)
  27. {int n;
  28.  word=Isword(chr,factname);
  29.  space=Isspace(chr,factname);
  30.  symbol=Issymbol(chr,factname);
  31.  tab=Istab(chr,factname);
  32.  newl=Isnewline(chr,factname);
  33.  brop=0;brcl=0;upp=0;low=0;
  34.  bropc=0;brclc=0;uppc=0;lowc=0;
  35.  n=Isopen(chr,factname);brop=0;if(n!=-1){brop=1;bropc=(n);};
  36.  n=Isclose(chr,factname);brcl=0;if(n!=-1){brcl=1;brclc=(n);};
  37.  n=Isupper(chr,factname);upp=0;if(n!=-1){upp=1;uppc=(n);};
  38.  n=Islower(chr,factname);low=0;if(n!=-1){low=1;lowc=(n);};
  39.  strgstr=FACTString(chr,factname);
  40. }
  41.  
  42. void SetAttributes(int chr)
  43. {
  44.  FACT(factname,chr,'E','-');
  45.  if(strlen(strgstr)>0){FACT(factname,chr,'S',strgstr);};
  46.  if(word){FACT(factname,chr,'W');};
  47.  if(space){FACT(factname,chr,' ');};
  48.  if(symbol){FACT(factname,chr,'!');};
  49.  if(tab){FACT(factname,chr,'T');};
  50.  if(newl){FACT(factname,chr,'N');};
  51.  if(brop){FACT(factname,chr,'(',bropc);};
  52.  if(brcl){FACT(factname,chr,')',brclc);};
  53.  if(upp){FACT(factname,chr,'U',uppc);};
  54.  if(low){FACT(factname,chr,'L',lowc);};
  55.  list[chr+5]=itoa(chr)+"   "+strgstr;
  56. }
  57.  
  58. export void FACTAttrWindow(int chr)
  59. {
  60.  int atype;
  61.  int acase;
  62.  int adeli;
  63.  int ok;
  64.  string scase;
  65.  string sdeli;
  66.  GetAttributes(chr);
  67.  atype=0;
  68.   if(word){atype=1;};
  69.   if(space){atype=2;};
  70.   if(symbol){atype=3;};
  71.   if(tab){atype=4;};
  72.   if(newl){atype=5;};
  73.  adeli=0;sdeli="";
  74.   if(brop){adeli=1;sdeli=itoc(bropc);};
  75.   if(brcl){adeli=2;sdeli=itoc(brclc);};
  76.  acase=0;scase="";
  77.   if(upp){acase=1;scase=itoc(uppc);};
  78.   if(low){acase=2;scase=itoc(lowc);};
  79.  if(chr>=0){
  80.  ok=RequestWindow("FACT Change ("+itoa(chr)+")",13,
  81.             "Display String","s",&strgstr,
  82.             "Type","c",&atype,"None|Word|Space|Symbol|Tab|Newline",
  83.             "Case","c",&acase,"None|Upper|Lower",
  84.             "Opposite","s",&scase,
  85.             "Delimiter","c",&adeli,"None|Opening|Closing",
  86.             "Opposite","s",&sdeli);}else{
  87.  ok=RequestWindow("FACT Change ("+itoa(chr)+")",13,
  88.             "Display String","s",&strgstr);};
  89.  if(ok)
  90.  {
  91.   word=space=symbol=tab=newl=upp=low=brop=brcl=0;
  92.   bropc=brclc=uppc=lowc=0;
  93.   switch(atype){
  94.    case 0:break;
  95.    case 1:word=1;break;
  96.    case 2:space=1;break;
  97.    case 3:symbol=1;break;
  98.    case 4:tab=1;break;
  99.    case 5:newl=1;break;
  100.    };
  101.   if(word){switch(acase){
  102.    case 0:break;
  103.    case 1:upp=1;uppc=scase[0];break;
  104.    case 2:low=1;lowc=scase[0];break;
  105.    };};
  106.   if(symbol){switch(adeli){
  107.    case 0:break;
  108.    case 1:brop=1;bropc=sdeli[0];break;
  109.    case 2:brcl=1;brclc=sdeli[0];break;
  110.    };};
  111.   SetAttributes(chr);
  112.  };
  113. }
  114.  
  115. export void FACTChangeRequest()
  116. {string tmp;int nm,cr;
  117.  factname=ReadInfo("fact");
  118.  MakeList();
  119.  tmp=itoa(GetChar())+"   "+FACTString(GetChar());
  120.  while(RequestWindow("Select Character",30,"","A",&list,&tmp,261))
  121.  {
  122.   Visible(0);
  123.   cr=-10;
  124.   for(nm=0;((nm<261)&&(0!=strcmp(tmp,list[nm])));nm++){};
  125.   if(nm!=261){FACTAttrWindow(nm-5);tmp=list[nm];};
  126.   Visible(1);
  127.  };
  128. }
  129.